<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of lugar
 *
 * @author Agustin
 */
require_once 'persistenciaLugar.php';

class Lugar {

    var $id;
    var $nombreLugar;
    var $tipo;
    var $direccion;
    var $responsable;
    var $mail;
    var $telefonos = array();

    public function __construct($datos) {
        if (!is_null($datos)) {
            $this->id = $datos[0];
            $this->nobreLugar = $datos[1];
            $this->tipo = $datos[2];
            $this->direccion = $datos[3];
            $this->responsable = $datos[4];
            $this->telefonos = $datos[5];
            $this->mail = $datos[6];
        }
    }

    public function crearLugar($datos) {
        $aux = $this->chequearDatos($datos[0], $datos[1], $datos[2], $datos[3], $datos[5]);
        if (is_bool($aux)) {
            try {
                $pL = PersistenciaLugar:: getInstance();
                $pL->crearLugar($datos);
                return 'Agregado con éxito';
            } catch (Exception $exc) {
                echo $exc->getTraceAsString();
            }
        } else {
            return $aux;
        }
    }

    public function agregarLugaresTelefonos($telefonos) {
        try {
            $pL = PersistenciaLugar:: getInstance();
            $datos = array($telefonos, $this->id);
            return $pL->agregarLugaresTelefonos($datos);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traerLugares($idCliente) {
        try {
            $lugares = array();
            $pL = PersistenciaLugar::getInstance();
            $lugares = $pL->traerLugares($idCliente);
            return $lugares;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traerLugar($idLug) {
        try {
            $pL = PersistenciaLugar::getInstance();
            return $pL->traerLugar($idLug);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function actualizarLugar($datos) {
        $aux = $this->chequearDatos($datos[0], $datos[1], $datos[2], $datos[3], $datos[5]);
        if (is_bool($aux)) {
            try {
                $pL = PersistenciaLugar::getInstance();
                $pL->actualizarLugar($datos);
                return 'Actualizado con éxito';
            } catch (Exception $exc) {
                echo $exc->getTraceAsString();
            }
        } else {
            return $aux;
        }
    }

    public function eliminarLugar($idlugar) {
        try {
            $pL = PersistenciaLugar::getInstance();
            $pL->delLugar($idlugar);
            return 'Eliminado con éxito';
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    private function chequearDatos($nombreLugar, $tipo, $direccion, $responsable, $mail) {
        $res = false;
        if ($nombreLugar == '') {
            $res = 'el nombre está vacío';
        }
        if ($tipo == '') {
            if ($res != '') {
                $res .= ' y ';
            }
            $res = 'el tipo está vacío';
        }
        if ($direccion == '') {
            if ($res != '') {
                $res .= ' y ';
            }
            $res = 'la dirección está vacío';
        }
        if ($responsable == '') {
            if ($res != '') {
                $res .= ' y ';
            }
            $res = 'el responsable está vacío';
        }
        if ($mail == '') {
            if ($res != '') {
                $res .= ' y ';
            }
            $res = 'el mail está vacío';
        }
        return $res;
    }

    public function __toString() {
        return $this->nombreLugar ;
    }

}

?>
